package com.proyectodesarrollo.semilleros.ejb;


import java.util.Date;
import java.util.List;

import javax.ejb.Remote;

import edu.eam.proyectodesarrollojpa.entidades.AccionCrudEnum;
import edu.eam.proyectodesarrollojpa.entidades.ActividadIntegrante;
import edu.eam.proyectodesarrollojpa.entidades.GrupoInvestigacion;
import edu.eam.proyectodesarrollojpa.entidades.Integrantes;
import edu.eam.proyectodesarrollojpa.entidades.LideresSemillero;
import edu.eam.proyectodesarrollojpa.entidades.LineaInvestigacion;
import edu.eam.proyectodesarrollojpa.entidades.Profesor;
import edu.eam.proyectodesarrollojpa.entidades.Reunion;
import edu.eam.proyectodesarrollojpa.entidades.Semillero;

@Remote
public interface SemillerosRemote {

	/***
	 * Metodo encargado de registrar un semillero
	 * Caso de uso  UC-0001 Registrar reunion
	 */
	public void registrarReunion(Reunion reunion,List<Integrantes> integrantes,String motivoReunion);
	
	/**
	 * Metodo encargado de almacenar la activiad de un integrante
	 * Caso de uso  UC-0001 Almacenar actividad
	 */
	public void almacenarActividad(Integrantes integrante,Date fechaEntrega);
	
	/**
	 * Metodo encargado de registras las diferentes tareas de una actividad
	 * Caso de uso  UC-0003 Ingresar tareas actividad
	 */
	public void ingresarTareasActividad(List<String> tareas,ActividadIntegrante actividad);
	
	/**
	 * Metodo encargado de hacer el crud de los grupos de investgación
	 * 
	 */
	public GrupoInvestigacion crudGrupoInvestigacion(GrupoInvestigacion grupoInvestigacion,AccionCrudEnum accion);
	
	/**
	 * Metodo encargado de hacer el crud de las lineas de investigación
	 * 
	 */
	public LineaInvestigacion crudLineaInvestigacion(LineaInvestigacion Lineainvestigacion,AccionCrudEnum accion);
	
	/**
	 * Metodo encargado de hacer el crud de los lideres del semillero
	 * 
	 */
	public LideresSemillero crudLiderSemillero(LideresSemillero liderSemillero,AccionCrudEnum accion);
	
	/**
	 * Metodo encargado de consultar un profesor
	 * 
	 */
	public Profesor consultarProfesor(String cedulaProfesor);
	
	/**
	 * Metodo encargado de consultar los semilleros
	 * @return semilleros
	 */
	public List<Semillero> consultarSemilleros();
}
